package com.ic.service;

import com.ic.base.BaseService;
import com.ic.base.PageInfo;
import com.ic.entity.ItemInfo;
import com.ic.entity.ItemUse;

import java.util.Map;

/**
 * Description: 入库物品明细业务接口层
 * Author: spark
 * Date  : 2017/6/25
 * Time  : 17:20.
 */
public interface ItemInfoService extends BaseService<ItemInfo> {

	/**
	 * 根据查询条件获取入库物品明细信息
	 *
	 * @param itemInfo 入库物品明细信息
	 * @param pageInfo 分页信息
	 * @return 返回Map
	 */
	public Map showItemInfoList(ItemInfo itemInfo, PageInfo pageInfo);

	/**
	 * 根据物品信息ID查询物品信息，如果被领用刚查询最新的领用信息
	 *
	 * @param id 物品信息ID
	 * @return 返回Map
	 */
	public Map showItemInfo(String id);

	/**
	 * 根据入库物品明细ID更改入库物品明细状态
	 *
	 * @param ids 入库物品明细ID
	 */
	public void updateState(String[] ids, String state);

	/**
	 * 检查入库物品明细的编号是否已存在
	 *
	 * @param itemInfo 入库物品明细信息
	 * @return 返回Map
	 */
	public Map checkItemInfoNum(ItemInfo itemInfo);

	/**
	 * 新增出库信息
	 *
	 * @param itemUse 出库信息
	 */
	public void addItemUseInfo(ItemUse itemUse);

	/**
	 * 查看出库物品信息
	 *
	 * @param itemInfo 出库物品信息
	 * @return 返回Map包含itemUse信息
	 */
	public Map showItemUse(ItemInfo itemInfo);

	/**
	 * 物品入库物品
	 *
	 * @param itemUse 物品领用信息
	 */
	public void updateItemUse(ItemUse itemUse);

	/**
	 * 根据物品ID查询物品明细及领用信息
	 *
	 * @param itemInfoId 物品ID
	 * @return 返回Map
	 */
	public Map showItemInfoWithItemUse(String itemInfoId);
}
